ইনহেরিটেন্স (Inheritance) হলো অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) এর একটি মূল বৈশিষ্ট্য, যা একটি ক্লাসকে অন্য একটি ক্লাস থেকে বৈশিষ্ট্য এবং আচরণ (ফিল্ড ও মেথড) গ্রহণ করতে সক্ষম করে। ইনহেরিটেন্সের মাধ্যমে একটি ক্লাসের সব ফিচার অন্য একটি ক্লাসে পুনরায় ব্যবহার করা যায়, যা কোডের পুনঃব্যবহারযোগ্যতা, রক্ষণাবেক্ষণ, এবং মডুলারাইজেশন সহজ করে।
ইনহেরিটেন্সে মূলত দুটি ধরনের ক্লাস থাকে:
সি শার্পে ইনহেরিটেন্স ব্যবহার করতে :
চিহ্ন দিয়ে ডেরাইভড ক্লাসকে বেস ক্লাস থেকে ইনহেরিট করা হয়।
class বেস_ক্লাস
{
// ফিল্ড এবং মেথড
}
class ডেরাইভড_ক্লাস : বেস_ক্লাস
{
// নতুন বৈশিষ্ট্য এবং মেথড যোগ করা যায়
}
নিচে একটি উদাহরণ দেওয়া হলো যেখানে Animal
ক্লাসকে ইনহেরিট করে Dog
ক্লাস তৈরি করা হয়েছে।
using System;
// বেস ক্লাস
class Animal
{
public void Eat()
{
Console.WriteLine("Eating...");
}
}
// ডেরাইভড ক্লাস
class Dog : Animal
{
public void Bark()
{
Console.WriteLine("Barking...");
}
}
class Program
{
static void Main(string[] args)
{
Dog dog = new Dog();
dog.Eat(); // বেস ক্লাস Animal থেকে ইনহেরিট করা মেথড
dog.Bark(); // ডেরাইভড ক্লাস Dog এর নিজস্ব মেথড
}
}
Eating...
Barking...
এখানে Dog
ক্লাস Animal
ক্লাস থেকে ইনহেরিট করেছে। ফলে Dog
ক্লাসের অবজেক্ট dog
দিয়ে Eat
এবং Bark
উভয় মেথড কল করা সম্ভব হয়েছে।
ইনহেরিটেন্সের মাধ্যমে প্রোগ্রামে কোডের পুনঃব্যবহারযোগ্যতা এবং দক্ষতা বৃদ্ধি করা যায়। এটি ব্যবহারের কিছু প্রধান কারণ নিচে আলোচনা করা হলো:
কোড পুনঃব্যবহারযোগ্যতা: ইনহেরিটেন্সের মাধ্যমে একবার লেখা কোড পুনরায় ব্যবহার করা যায়, যা কোডের পুনরাবৃত্তি কমায়। উদাহরণস্বরূপ, একটি সাধারণ বৈশিষ্ট্য বা মেথড একাধিক ক্লাসে প্রয়োজন হলে বেস ক্লাসে রেখে তা ইনহেরিট করা যায়।
সহজ রক্ষণাবেক্ষণ: এক জায়গায় পরিবর্তন করলে সব ডেরাইভড ক্লাসে তার প্রভাব পড়ে, ফলে কোড রক্ষণাবেক্ষণ সহজ হয়।
মডুলারাইজেশন: ইনহেরিটেন্সের মাধ্যমে প্রোগ্রামকে ছোট ছোট মডিউলে ভাগ করা যায়, যা প্রোগ্রামিং এবং ডিবাগিং সহজ করে।
ইন্টারফেস ও পলিমরফিজম: ইনহেরিটেন্সের মাধ্যমে পলিমরফিজম (Polymorphism) ব্যবহার করা যায়, যার মাধ্যমে একই ধরনের কাজ বিভিন্ন ভাবে করা সম্ভব হয়।
// বেস ক্লাস
class Vehicle
{
public void StartEngine()
{
Console.WriteLine("Engine started.");
}
}
// ডেরাইভড ক্লাস
class Car : Vehicle
{
public void Drive()
{
Console.WriteLine("Driving...");
}
}
class Bike : Vehicle
{
public void Ride()
{
Console.WriteLine("Riding...");
}
}
class Program
{
static void Main(string[] args)
{
Car car = new Car();
car.StartEngine(); // ইনহেরিট করা মেথড
car.Drive(); // Car এর নিজস্ব মেথড
Bike bike = new Bike();
bike.StartEngine(); // ইনহেরিট করা মেথড
bike.Ride(); // Bike এর নিজস্ব মেথড
}
}
Engine started.
Driving...
Engine started.
Riding...
এখানে Car
এবং Bike
উভয় ক্লাস Vehicle
ক্লাস থেকে StartEngine
মেথড ইনহেরিট করেছে, ফলে একই মেথড একাধিকবার না লিখেই ব্যবহার করা সম্ভব হয়েছে।
ইনহেরিটেন্স সি শার্পে একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা কোডের পুনঃব্যবহারযোগ্যতা, মডুলারাইজেশন এবং রক্ষণাবেক্ষণ সহজ করে। ইনহেরিটেন্স ব্যবহার করে কোডকে আরও সংগঠিত ও কার্যকরভাবে সাজানো যায় এবং পলিমরফিজম ও ইন্টারফেসের সুবিধা নেওয়া যায়।
আরও দেখুন...